	.section	__TEXT,__text,regular,pure_instructions
	.build_version ios, 14, 0	sdk_version 14, 0
	.globl	_add                    ; -- Begin function add
	.p2align	2
_add:                                   ; @add  add 函数
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #16             ; =16 开辟0x16大小的栈空间，保存现场
	.cfi_def_cfa_offset 16
	str	w0, [sp, #12]			; 将第一个参数写入到内存中
	str	w1, [sp, #8]			; 将第二个参数写入到内存中
	ldr	w8, [sp, #12]			; 从内存中加载第一个参数到w8寄存器
	ldr	w9, [sp, #8]			; 从内存中加载第二个参数到w9寄存器
	add	w0, w8, w9 				; 将第一个参数和第二个参数相加，存入w0中
	add	sp, sp, #16             ; =16 恢复现场
	ret							; add函数返回
	.cfi_endproc
                                        ; -- End function
	.globl	_main                   ; -- Begin function main
	.p2align	2
_main:                                  ; @main main函数
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #48             ; =48
	stp	x29, x30, [sp, #32]     ; 16-byte Folded Spill
	add	x29, sp, #32            ; =32
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16		
	mov	w8, #0					; 将立即数0传入w8寄存器 ARM寄存器不支持直接把值写入内存，所以先把值写入到寄存器，然后再从寄存器写入到内存
	stur	wzr, [x29, #-4]		
	stur	w0, [x29, #-8]		; 保存w0寄存器
	str	x1, [sp, #16]			; 保存x1寄存器
	str	x2, [sp, #8]			; 保存x2寄存器
	mov	w0, #3					; 将3传入w0寄存器
	mov	w1, #4					; 将4传入w1寄存器
	str	w8, [sp]                ; 4-byte Folded Spill 将w8保存到栈顶位置的内存中
	bl	_add					; 调用add函数，计算结果通过w0返回
	str	w0, [sp, #4]			; 保存计算结果
	ldr	w0, [sp]                ; 4-byte Folded Reload   这里应该是return 0;
	ldp	x29, x30, [sp, #32]     ; 16-byte Folded Reload
	add	sp, sp, #48             ; =48
	ret
	.cfi_endproc
                                        ; -- End function
	.section	__DATA,__objc_imageinfo,regular,no_dead_strip
L_OBJC_IMAGE_INFO:
	.long	0
	.long	64

.subsections_via_symbols
